{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 微信好友数据分析"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 155,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "import itchat #微信\n",
    "import matplotlib.pyplot as plt #画图\n",
    "import re #正则\n",
    "import io\n",
    "import jieba #中文分词\n",
    "from wordcloud import WordCloud #词云\n",
    "\n",
    "import math\n",
    "import PIL.Image as Image #头像图片会用到"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 141,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "server refused, loading login status failed.\n",
      "Getting uuid of QR code.\n",
      "Downloading QR code.\n",
      "Please scan the QR code to log in.\n",
      "Please press confirm on your phone.\n",
      "Loading the contact, this may take a little while.\n",
      "Login successfully as xiaomeng\n",
      "Dump login status for hot reload successfully.\n",
      "No uins in 51 message\n",
      "\n",
      "No uins in 51 message\n",
      "\n"
     ]
    }
   ],
   "source": [
    "#扫二维码登陆自己的微信号\n",
    "itchat.auto_login(True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 142,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#获得好友列表\n",
    "friendList = itchat.get_friends(update=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 男女比例分析"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "男性朋友66人，女性朋友118人，没填性别的有27人，总共211位朋友\n"
     ]
    }
   ],
   "source": [
    "male=0\n",
    "female=0\n",
    "other=0\n",
    "for friend in friendList[1:]: #friendList[0]是我本人，所以不能加进来分析，从friend 1开始到最后一位\n",
    "    if friend['Sex']==1: # 1代表男，2女，其他是未知性别\n",
    "        male=male+1\n",
    "    elif friend['Sex']==2:\n",
    "        female=female+1\n",
    "    else:\n",
    "        other=other+1\n",
    "print(\"男性朋友\" + str(male)+\"人，女性朋友\"+ str(female)+\"人，没填性别的有\"+ str(other)+\"人，总共\"+ str(male+female+other)+\"位朋友\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Xiaomeng\\Anaconda3\\lib\\site-packages\\matplotlib\\font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans\n",
      "  (prop.get_family(), self.defaultFamily[fontext]))\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1bf76c5d7b8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#画个饼图\n",
    "\n",
    "plt.rcParams['font.sans-serif']=['SimHei'] #解决中文乱码\n",
    "# Pie chart, where the slices will be ordered and plotted counter-clockwise:\n",
    "labels = 'male', 'female', 'not known'\n",
    "sizes = [male, female, other]\n",
    "\n",
    "\n",
    "fig1, ax1 = plt.subplots()\n",
    "ax1.pie(sizes,  labels=labels, autopct='%1.1f%%',\n",
    "        shadow=True, startangle=90)\n",
    "ax1.axis('equal')  # Equal aspect ratio ensures that pie is drawn as a circle.\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 地域分析"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 108,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['未知', '北京', '浙江', '广东', '上海']\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Xiaomeng\\Anaconda3\\lib\\site-packages\\matplotlib\\font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans\n",
      "  (prop.get_family(), self.defaultFamily[fontext]))\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1bf76fa3470>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "province_dict = {'北京': 0, '上海': 0, '天津': 0, '重庆': 0,\n",
    "        '河北': 0, '山西': 0, '吉林': 0, '辽宁': 0, '黑龙江': 0,\n",
    "        '陕西': 0, '甘肃': 0, '青海': 0, '山东': 0, '福建': 0,\n",
    "        '浙江': 0, '台湾': 0, '河南': 0, '湖北': 0, '湖南': 0,\n",
    "        '江西': 0, '江苏': 0, '安徽': 0, '广东': 0, '海南': 0,\n",
    "        '四川': 0, '贵州': 0, '云南': 0,\n",
    "        '内蒙古': 0, '新疆': 0, '宁夏': 0, '广西': 0, '西藏': 0,\n",
    "        '香港': 0, '澳门': 0,'未知':0}\n",
    "for friend in friendList[1:]: #friendList[0]是我本人，所以不能加进来分析，从friend 1开始到最后一位\n",
    "    if friend.province in province_dict.keys():\n",
    "        province_dict[friend.province] += 1 #统计一下朋友的省份，如果在上面列表里就加一\n",
    "    else: \n",
    "        province_dict['未知']+=1 #如果不在上面列表里，全部算作未知\n",
    "\n",
    "sorted_by_value = sorted(province_dict.items(), key=lambda kv: kv[1],reverse=True) #按人数从多到少排序\n",
    "\n",
    "\n",
    "top10province=[]\n",
    "peopleintop10province=[]\n",
    "for topn in range(5):\n",
    "    tup=sorted_by_value[topn]\n",
    "    top10province.append(tup[0]) #排名前十的省份\n",
    "    peopleintop10province.append(tup[1])#这个省的朋友数\n",
    "   \n",
    "    \n",
    "print(top10province)\n",
    "plt.bar(range(len(peopleintop10province)), peopleintop10province,color='rgb',tick_label=top10province) \n",
    "plt.show()\n",
    "\n",
    "##此处有个matplot中文乱码问题没解决！\n",
    "###不太想弄了，如果弄的话，可以看这个https://www.jianshu.com/p/15b5189f85a3"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 个性签名词云"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 126,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "signatures=[]\n",
    "for friend in friendList[1:]: #friendList[0]是我本人，所以不能加进来分析，从friend 1开始到最后一位\n",
    "    signature=friend[\"Signature\"].strip().replace(\"span\", \"\").replace(\"class\", \"\").replace(\"emoji\", \"\")\n",
    "    rep = re.compile(\"1f\\d+\\w*|[<>/=]\") #获取签名，有奇怪的内容，表情就该删删\n",
    "    signature = rep.sub(\"\", signature)\n",
    "    signatures.append(signature)\n",
    "text = \"\".join(signatures)\n",
    "with io.open('signatures.txt', 'a', encoding='utf-8') as f:\n",
    "    wordlist = jieba.cut(text, cut_all=True) #把这些签名用jieba分成一个个的词，然后存到signatures.txt里\n",
    "    word_space_split = \" \".join(wordlist)\n",
    "    f.write(word_space_split)\n",
    "    f.close()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 133,
   "metadata": {
    "collapsed": false,
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Xiaomeng\\Anaconda3\\lib\\site-packages\\matplotlib\\font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans\n",
      "  (prop.get_family(), self.defaultFamily[fontext]))\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1bf76db45f8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "\n",
    "\n",
    "f = open(r'signatures.txt','r', encoding='UTF-8').read()\n",
    "wordcloud = WordCloud(background_color=\"white\",width=1000, height=860, margin=2,font_path = r'C:\\Users\\Xiaomeng\\Downloads\\simkai.ttf').generate(f)\n",
    "\n",
    "#这个中文不支持，下载了一个字体simkai.ttf\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "plt.imshow(wordcloud)\n",
    "plt.axis(\"off\")\n",
    "plt.show()\n",
    "\n",
    "#wordcloud.to_file('test.png')\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 头像拼图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 148,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "No uins in 51 message\n",
      "\n",
      "No uins in 51 message\n",
      "\n",
      "No uins in 51 message\n",
      "\n",
      "No uins in 51 message\n",
      "\n",
      "No uins in 51 message\n",
      "\n",
      "No uins in 51 message\n",
      "\n",
      "No uins in 51 message\n",
      "\n",
      "No uins in 51 message\n",
      "\n",
      "No uins in 51 message\n",
      "\n",
      "No uins in 51 message\n",
      "\n",
      "No uins in 51 message\n",
      "\n",
      "No uins in 51 message\n",
      "\n"
     ]
    }
   ],
   "source": [
    "num=0\n",
    "for friend in friendList[1:]: #friendList[0]是我本人，所以不能加进来分析，从friend 1开始到最后一位\n",
    "    img = itchat.get_head_img(userName=friend[\"UserName\"])#通过用户名下载头像\n",
    "    fileImage = open(\"head_img\"+str(num)+\".jpg\",'wb')\n",
    "    fileImage.write(img)\n",
    "    fileImage.close()\n",
    "    num+=1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 157,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "44\n",
      "14\n"
     ]
    }
   ],
   "source": [
    "eachsize = int(math.sqrt(float(640 * 640) / num))\n",
    "print(eachsize)\n",
    "numline = int(640 / eachsize)\n",
    "# 创建一个新的图像\n",
    "toImage = Image.new('RGB', (618, 657))\n",
    "print(numline)\n",
    "x = 0\n",
    "y = 0\n",
    "for i in range(num):\n",
    "    try:\n",
    "        #打开图片\n",
    "        img = Image.open(\"head_img\"+str(i)+\".jpg\")\n",
    "    except IOError:\n",
    "        print(\"Error: 没有找到文件或读取文件失败\")\n",
    "    else:\n",
    "        #缩小图片\n",
    "        img = img.resize((eachsize, eachsize), Image.ANTIALIAS)\n",
    "        #拼接图片\n",
    "        toImage.paste(img, (x * eachsize, y * eachsize))\n",
    "        x += 1\n",
    "        if x == numline:\n",
    "            x = 0\n",
    "            y += 1\n",
    "toImage.save(\"head_image.jpg\")\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "好博客：\n",
    "https://blog.csdn.net/qq_24908345/article/details/80449598 "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 找特定的朋友说一句话"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 144,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[<User: {'Alias': '', 'Signature': '', 'RemarkPYInitial': '', 'NickName': 'Woodbridge 哈哈', 'UniFriend': 0, 'City': '', 'RemarkPYQuanPin': '', 'HeadImgUrl': '/cgi-bin/mmwebwx-bin/webwxgeticon?seq=663787128&username=@d7037a69aef0da8aad5dd0535ceb7b01b40caa51f54ea08161602b67f303b801&skey=@crypt_70d42170_80180ddb8d067345299fc22405635371', 'EncryChatRoomId': '', 'AttrStatus': 234021, 'UserName': '@d7037a69aef0da8aad5dd0535ceb7b01b40caa51f54ea08161602b67f303b801', 'Uin': 0, 'VerifyFlag': 0, 'AppAccountFlag': 0, 'PYInitial': 'WOODBRIDGEHH', 'StarFriend': 0, 'DisplayName': '', 'ChatRoomId': 0, 'MemberCount': 0, 'Province': '', 'HideInputBarFlag': 0, 'KeyWord': '', 'RemarkName': '', 'PYQuanPin': 'Woodbridgehaha', 'ContactFlag': 3, 'SnsFlag': 1, 'Statues': 0, 'MemberList': <ContactList: []>, 'IsOwner': 0, 'Sex': 2, 'OwnerUin': 0}>]\n"
     ]
    }
   ],
   "source": [
    "myfriend=itchat.search_friends(name='Woodbridge 哈哈')\n",
    "print(myfriend)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 159,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Request to send a text message to @d7037a69aef0da8aad5dd0535ceb7b01b40caa51f54ea08161602b67f303b801: 说一句哈\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<ItchatReturnValue: {'MsgID': '5226138319137844289', 'BaseResponse': {'Ret': 0, 'ErrMsg': '请求成功', 'RawMsg': '请求成功'}, 'LocalID': '15459459099412'}>"
      ]
     },
     "execution_count": 159,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "No uins in 51 message\n",
      "\n"
     ]
    }
   ],
   "source": [
    "itchat.send('说一句哈', myfriend[0]['UserName'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 看看程序运行期间谁跟我说话"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Getting uuid of QR code.\n",
      "Downloading QR code.\n",
      "Please scan the QR code to log in.\n",
      "LOG OUT!\n",
      "Please press confirm on your phone.\n",
      "Loading the contact, this may take a little while.\n",
      "Login successfully as xiaomeng\n",
      "Start auto replying.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Woodbridge 哈哈\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Bye~\n"
     ]
    }
   ],
   "source": [
    "@itchat.msg_register(itchat.content.TEXT)\n",
    "def _(msg):\n",
    "    # equals to print(msg['FromUserName'])\n",
    "    print(msg['User'].NickName)\n",
    "itchat.auto_login()\n",
    "itchat.run()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 微信自动回复"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 162,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Getting uuid of QR code.\n",
      "Downloading QR code.\n",
      "Please scan the QR code to log in.\n",
      "Please press confirm on your phone.\n",
      "Loading the contact, this may take a little while.\n",
      "Login successfully as xiaomeng\n",
      "Start auto replying.\n",
      "No uins in 51 message\n",
      "\n",
      "No uins in 51 message\n",
      "\n",
      "Request to send a text message to @f84086c32b07a87796d53c6b380749f9dca20cc1d0e4bc7eff9a084a62dcadb6: 我真不在，别发了\n",
      "No uins in 51 message\n",
      "\n",
      "Request to send a text message to @f84086c32b07a87796d53c6b380749f9dca20cc1d0e4bc7eff9a084a62dcadb6: 我真不在，别发了\n",
      "No uins in 51 message\n",
      "\n",
      "Request to send a text message to @f84086c32b07a87796d53c6b380749f9dca20cc1d0e4bc7eff9a084a62dcadb6: 我真不在，别发了\n",
      "No uins in 51 message\n",
      "\n",
      "Request to send a text message to @f84086c32b07a87796d53c6b380749f9dca20cc1d0e4bc7eff9a084a62dcadb6: 我真不在，别发了\n",
      "Request to send a text message to @f84086c32b07a87796d53c6b380749f9dca20cc1d0e4bc7eff9a084a62dcadb6: 我真不在，别发了\n",
      "No uins in 51 message\n",
      "\n",
      "Request to send a text message to @f84086c32b07a87796d53c6b380749f9dca20cc1d0e4bc7eff9a084a62dcadb6: 我真不在，别发了\n",
      "No uins in 51 message\n",
      "\n",
      "Request to send a text message to @f84086c32b07a87796d53c6b380749f9dca20cc1d0e4bc7eff9a084a62dcadb6: 我真不在，别发了\n",
      "itchat received an ^C and exit.\n",
      "Bye~\n"
     ]
    }
   ],
   "source": [
    "import itchat, time\n",
    "from itchat.content import *\n",
    "\n",
    "\n",
    "@itchat.msg_register([TEXT, MAP, CARD, NOTE, SHARING])\n",
    "def text_reply(msg):\n",
    "    f = open(r'count.txt','r', encoding='UTF-8').read()\n",
    "    count=int(f)\n",
    "    if msg['User'].NickName=='Woodbridge 哈哈':#某人的昵称\n",
    "        if count<3:\n",
    "            msg.user.send('我不在线，这个是自动回复的') \n",
    "            if msg.type!='Text':\n",
    "                msg.user.send('%s: %s' % (msg.type, msg.text))\n",
    "        else:\n",
    "            msg.user.send('我真不在，别发了')\n",
    "    \n",
    "        with io.open(r'count.txt', 'w', encoding='utf-8') as f:   ##缺陷就是程序推出后，这个count.txt不会自动清零\n",
    "            f.close()\n",
    "        with io.open(r'count.txt', 'w', encoding='utf-8') as f:\n",
    "            count=count+1\n",
    "            f.write(str(count))\n",
    "            f.close()\n",
    "        \n",
    "    else:\n",
    "        print(msg['User'].NickName)\n",
    "\n",
    "@itchat.msg_register([PICTURE, RECORDING, ATTACHMENT, VIDEO])\n",
    "def download_files(msg):\n",
    "    msg.download(msg.fileName)\n",
    "    typeSymbol = {\n",
    "        PICTURE: 'img',\n",
    "        VIDEO: 'vid', }.get(msg.type, 'fil')\n",
    "    return '@%s@%s' % (typeSymbol, msg.fileName)\n",
    "\n",
    "@itchat.msg_register(FRIENDS)\n",
    "def add_friend(msg):\n",
    "    msg.user.verify()\n",
    "    msg.user.send('Nice to meet you!')\n",
    "\n",
    "@itchat.msg_register(TEXT, isGroupChat=True)\n",
    "def text_reply(msg):\n",
    "    if msg.isAt:\n",
    "        msg.user.send(u'@%s\\u2005I received: %s' % (\n",
    "            msg.actualNickName, msg.text))\n",
    "\n",
    "itchat.auto_login()\n",
    "itchat.run(True)\n",
    "\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python [conda env:Anaconda3]",
   "language": "python",
   "name": "conda-env-Anaconda3-py"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
